package someTestExcemple.tcp;

import java.io.DataOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.util.Scanner;

public class Client {
    //TCP通信快速学习
    public static void main(String[] args) throws IOException {
        System.out.println("客户端启动~~~");
        //创建客户端Socket对象 --指定服务器的IP地址和端口号
        Socket socket = new Socket(InetAddress.getLocalHost().getHostAddress(), 8888);
        //创建一个线程不断接收服务端转发的的数据
        new Thread(new ClientReaderThread(socket)).start();
        //从socket通信管道中获取一个输出流，向服务端发送数据
        OutputStream os = socket.getOutputStream();
        //把低级字节流包装成高级数据流
        DataOutputStream dos = new DataOutputStream(os);
        Scanner scanner = new Scanner(System.in);

        try {
            //不断向服务端发送数据
            while (true) {
                System.out.println("请输入要发送的内容：");
                String str = scanner.next();
                if(str.equals("exit")) {
                    System.out.println("数据发送结束~~~~");
                    dos.close();
                    socket.close();
                    break;
                }
                dos.writeUTF(str);
                dos.flush();
    //            dos.close();
    //            socket.close();
            }
        } catch (IOException e) {
            dos.close();
            socket.close();
            e.printStackTrace();
        }
    }
}
